Virtual reality input including maintaining a current mapping of the input from an input device to an input plane within the 3D space

ABSTRACT

An input system may include a stylus, a positionable output device, a tablet to receive input via interaction with the stylus, and a three-dimensional (3D) workspace represented on a graphical user interface (GUI) of the positionable output device communicatively coupled to the tablet. Two-dimensional (2D) input on the tablet translates to a 3D input on the 3D workspace based on the orientation of an input plane represented in the 3D workspace. Interfacing the stylus with the tablet freezes a view of a tablet-to-input mapping displayed on the positionable output device.

BACKGROUND

Computer-aided design (CAD) allows a user to create objects inthree-dimensional (3D) space. These objects may be used to createphysical 3D objects or better visualize those objects.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings illustrate various examples of the principlesdescribed herein and are a part of the specification. The illustratedexamples are given merely for illustration, and do not limit the scopeof the claims.

FIG. 1 is a diagram of an input system according to an example of theprinciples described herein.

FIGS. 2A and 2B are user view reference diagrams implemented in a VRheadset according to an example of the principles described herein.

FIG. 3 is a diagram showing two resulting view reference diagramsresulting from an unfrozen and frozen view, respectively, according toan example of the principles described herein.

FIGS. 4A and 4B are top view diagrams of a view frustum and tabletfrustum as before and after a viewpoint motion respectively according toan example of the principles described herein.

FIG. 5 is a flowchart showing a method of applying a two-dimensional(2D) input into a three-dimensional (3D) space according to one exampleof the principles described herein.

Throughout the drawings, identical reference numbers designate similar,but not necessarily identical, elements.

DETAILED DESCRIPTION

As described above, CAD drawing is used to create 3D objects within a 3Dspace. In some instances, a user may execute a CAD program on acomputing device that receives input from an input device and translatesthat input onto a two-dimensional (2D) screen. However, realizing a 3Dobject within a 3D workspace displayed on a 2D screen it not intuitive.

In some examples, a stylus is used as an input device. In this example,the stylus may be moved within a 3D space in order to allow the user tocreate the 3D object. However, this method of input, where the user'sarm, hand and stylus are all unsupported, has proven to be imprecisecompared to conventional, 2D-constrained input methods. Other types ofinput devices may be used but generally these types of input devices arenot intuitive to a user and an amount of practice and/or mentalvisualization is implemented in order to create the intended 3D object.

The present specification, therefore describes an input system that mayinclude a stylus, a positionable output device, a tablet to receiveinput via interaction with the stylus, and a three-dimensional (3D)workspace represented on a graphical user interface (GUI) of thepositionable output device communicatively coupled to the tablet whereintwo-dimensional (2D) input on the tablet translates to a 3D input on the3D workspace based on the orientation of an input plane represented inthe 3D workspace and wherein interface of the stylus with the tabletfreezes a view of a tablet-to-input-plane mapping displayed on thepositionable output device.

The present specification further describes a method of applying atwo-dimensional (2D) input into a three-dimensional (3D) space includingreceiving input from a first input device at a processor indicating achange in position of an input plane within the 3D space represented onan output device, receiving input from a second input device having a 2Dsurface at the processor indicating a line to be drawn in the 3D space,representing the received input from the second input device as a 3Dimage on the 3D space displayed on the output device, and maintaining acurrent mapping of the input from the second input device to the inputplane within 3D space when a stylus interacts with the second inputdevice and as the output device is moved.

The present specification also describes a computer program product forapplying a two-dimensional (2D) input into a three-dimensional (3D)space, the computer program product including a computer readablestorage medium including computer usable program code embodiedtherewith, the computer usable program code to, when executed by aprocessor receive input from a first input device at a processorindicating a change in position of an input plane within the 3D spacerepresented on an output device, receive input from a second inputdevice having a 2D surface at the processor indicating a line to bedrawn in the 3D space, represent the received input from the secondinput device as a 3D image on the 3D space displayed on the outputdevice, and maintain a current mapping of the input from the secondinput device to the input plane within the 3D space when a stylusinteracts with the second input device and as the output device ismoved.

As used in the present specification and in the appended claims, theterm “frustum” is meant to be understood as any three-dimensional regionwhich is visible on a viewing. In some examples, the frustum is called a“view frustum.” In an example, the frustum is the 3D shape of a clippedrectangular pyramid.

Additionally, as used in the present specification and in the appendedclaims, the term “a number of” or similar language is meant to beunderstood broadly as any positive number comprising 1 to infinity.

In the following description, for purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present systems and methods. It will be apparent,however, to one skilled in the art that the present apparatus, systemsand methods may be practiced without these specific details. Referencein the specification to “an example” or similar language means that aparticular feature, structure, or characteristic described in connectionwith that example is included as described, but may not be included inother examples.

Turning now to the figures, FIG. 1 is a diagram of an input system (100)according to an example of the principles described herein. The inputsystem (100) may include a stylus (105) and tablet (110) and apositionable output device (115) having a three-dimensional (3D)workspace (120) displayed therein. Each of these will now be describedin more detail.

The stylus (105) may be any type of elongated device that a user mayhold and touch to a surface such as the tablet (110). In an example, thestylus (105) is a passive or capacitive stylus in that the stylus (105)acts just like a human finger when touching a touch sensitive screen,for example. In this example, no electronic communication is presentbetween the passive stylus and a device such as the tablet (110). In anexample, the stylus (105) is an active stylus (105) in that the stylus(105) includes electronic components that communicate with thetouchscreen controller on a device such as the tablet (110). During use,a user may implement the stylus (105) against or near the tablet (110)in order to have input received and presented on the 3D workspace (120)within the positionable output device (115).

The positionable output device (115) may be any device that implements aviewing surface to represent a 3D object or image within a 3D workspace(120). In an example and for convenience of description herein, thepositionable output device (115) is a virtual reality (VR) headsetimplementing stereoscopic images called stereograms to represent the 3Dobject or image within the 3D workspace (120). The images shown by the3D workspace (120) may be still images or video images based on what theuser is to display within the VR headset (115). The VR headset (115) maypresent the 3D workspace (120) and 3D object or image to a user via anumber of ocular screens. In an example, the ocular screens are placedin an eyeglass or goggle system allowing a user to view both ocularscreens simultaneously. This creates the illusion of a 3D workspace(120) and 3D objects using two individual ocular screens.

The VR headset (115) may further include a gyroscopic device and anaccelerometer. The gyroscope may be used to detect the orientation ofthe VR headset (115) in 3D space as the VR headset (115) is on theuser's head. The accelerometer may be used to detect the speed andchange in speed of the VR headset (115) as it travels from one locationin 3D space to another location in 3D space. The gyroscope andaccelerometer may provide to the processor this data such that movementof the VR headset (115) as it sits on the user's head is translated intoa change in the point of view within the 3D workspace (120).

Although the present specification describes the user implementing a VRheadset (115) in order to be presented with a 3D workspace (120), othertypes of environments may also be used. In an example, an augmentedreality (AR) environment may be used where aspects of the real world areviewable in a visual representation while a 3D object is being drawnwithin the AR environment. Thus, much like the VR system describedherein, an AR system may include a visual presentation provided to auser via a computer screen or a headset including a number of screens,among other types of devices to present a visual representation of the3D workspace (120). Thus the present description contemplates the use ofnot only a VR environment but an AR environment as well.

During operation, a user may provide input to a processor using thestylus (105) and tablet (110). The input is then processed and presentedto the user via the VR headset (115). Thus, the user may, in real time,create and see input created. This allows a user to manipulate the 3Dworkspace (120) and the 3D objects created therein to create or augmentthe 3D objects. In an example, the processor may be a built-in componentof the tablet (110) and/or the VR headset (115). In an example, theprocessor may be a component of a computing device separate from thetablet (110) and/or VR headset (115). In this example, the computingdevice may receive the input from the tablet (110) and stylus (105) andcause the processor to relay the processed data to the VR headset (115)in real time.

The processor may be implemented in an electronic device. Examples ofelectronic devices include servers, desktop computers, laptop computers,personal digital assistants (PDAs), mobile devices, smartphones, gamingsystems, VR headsets (115), and tablets, among other electronic devices.

The processor may be utilized in any data processing scenario including,stand-alone hardware, mobile applications, through a computing network,or combinations thereof. Further, the processor may be used in acomputing network, a public cloud network, a private cloud network, ahybrid cloud network, other forms of networks, or combinations thereof.In one example, the methods provided by the processor are provided as aservice over a network by, for example, a third party. In this example,the service may comprise, for example, the following: a Software as aService (SaaS) hosting a number of applications; a Platform as a Service(PaaS) hosting a computing platform comprising, for example, operatingsystems, hardware, and storage, among others; an Infrastructure as aService (IaaS) hosting equipment such as, for example, servers, storagecomponents, network, and components, among others; application programinterface (API) as a service (APIaaS), other forms of network services,or combinations thereof. The present input system (100) may beimplemented on one or multiple hardware platforms, in which certainmodules in the system can be executed on one or across multipleplatforms.

The input system (100) may further include various hardware components.Among these hardware components may the processor described above, anumber of data storage devices, a number of peripheral device adapters,and a number of network adapters. These hardware components may beinterconnected through the use of a number of busses and/or networkconnections. In one example, the processor, data storage device,peripheral device adapters, and a network adapter may be communicativelycoupled via a bus.

The processor may include the hardware architecture to retrieveexecutable code from the data storage device and execute the executablecode. The executable code may, when executed by the processor, cause theprocessor to implement at least the functionality of receiving input anddisplaying an image or series of images to a user via the VR headset(115) according to the methods of the present specification describedherein. In the course of executing code, the processor may receive inputfrom and provide output to a number of the remaining hardware units.

The data storage device may store data such as executable program codethat is executed by the processor or another processing device. As willbe discussed, the data storage device may specifically store computercode representing a number of applications that the processor executesto implement at least the functionality described herein.

The data storage device may include various types of memory modules,including volatile and nonvolatile memory. For example, the data storagedevice of the present example includes Random Access Memory (RAM), ReadOnly Memory (ROM), and Hard Disk Drive (HDD) memory. Many other types ofmemory may also be utilized, and the present specification contemplatesthe use of many varying type(s) of memory in the data storage device asmay suit a particular application of the principles described herein. Incertain examples, different types of memory in the data storage devicemay be used for different data storage needs. For example, in certainexamples the processor may boot from Read Only Memory (ROM), maintainnonvolatile storage in the Hard Disk Drive (HDD) memory, and executeprogram code stored in Random Access Memory (RAM).

Generally, the data storage device may comprise a computer readablemedium, a computer readable storage medium, or a non-transitory computerreadable medium, among others. For example, the data storage device maybe, but not limited to, an electronic, magnetic, optical,electromagnetic, infrared, or semiconductor system, apparatus, ordevice, or any suitable combination of the foregoing. More specificexamples of the computer readable storage medium may include, forexample, the following: an electrical connection having a number ofwires, a portable computer diskette, a hard disk, a random access memory(RAM), a read-only memory (ROM), an erasable programmable read-onlymemory (EPROM or Flash memory), a portable compact disc read-only memory(CD-ROM), an optical storage device, a magnetic storage device, or anysuitable combination of the foregoing. In the context of this document,a computer readable storage medium may be any tangible medium that cancontain, or store computer usable program code for use by or inconnection with an instruction execution system, apparatus, or device.In another example, a computer readable storage medium may be anynon-transitory medium that can contain, or store a program for use by orin connection with an instruction execution system, apparatus, ordevice.

The hardware adapters enable the processor to interface with variousother hardware elements. For example, the peripheral device adapters mayprovide an interface to input/output devices, such as, for example,display device, the VR headset (115), a mouse, or a keyboard. Theperipheral device adapters may also provide access to other externaldevices such as an external storage device, a number of network devicessuch as, for example, servers, switches, and routers, client devices,other types of computing devices, and combinations thereof.

In an example, the VR headset (115) may be replaced with a displayscreen associated with a desktop or laptop computing device. In thisexample, operation of the input system (100) would be similar to theinput system (100) implementing the stylus (105) and tablet (110)described above. In an example, the boundaries of the tablet frustum(210) and the boundaries of the user view frustum (205) would be equal.In an example, the boundaries of the tablet frustum (210) and theboundaries of the user visible frustum (205) are not equal with theboundaries of either the tablet frustum (210) or user visible frustum(205) being relatively larger than the other.

In an example, the VR headset (115) may be replaced with a touch screendisplay associated with a desktop or laptop computing device. In thisexample, operation would be similar to the above except that theboundaries of the tablet frustum (210) and the boundaries of the uservisible frustum (205) are the same. In an example of the display being astereo 3D display, the input system (100) may allow for the fact thatthe depth of the stylus (105) in the 3D workspace (120) is visible andfixed at the surface of the touch screen. Consequently, if a line isdrawn on the surface of the touchscreen sloping into the 3D workspace,the view will follow, zooming in to the workspace to follow the stylus(105) as it draws.

FIGS. 2A and 2B are user view reference diagrams (200) implemented in aVR headset (115) according to an example of the principles describedherein. The view presented in the VR headset (115) contains a number offrustums (205, 210) and an input plane (215). The frustums (205, 210)include a user view frustum (205) and a tablet frustum (210). The userview frustum (205) is all of the 3D space or 3D workspace (120) visibleto a user implementing the VR headset (115) described above, for aparticular location and orientation of that VR headset (115). Thisvolume of virtual space may include a number of widgets that the usercan address by implementing an input device such as a mouse or thestylus (105) and tablet (110). By implementing the widgets, a user mayadjust the position of the input plane (215) and/or the space within theuser view frustum (205) that the tablet frustum (210) occupies.Additionally, the widgets may include other 3D object editing commandsincluding any number of drawing tools such as palettes, fills, linedrawing tools, object forming tools, cropping tools, and cutting tools,among others.

The tablet frustum (210) may be included within the user view frustum(205) at all times. The tablet frustum (210) corresponds to a mappedarea on the 2D surface of the tablet (110). In an example, the uservisible frustum (205) and the tablet frustum (210) share the sameviewpoint (220). During operation of the VR headset (115), movement ofthe VR headset (115) while the user is viewing the 3D workspace (120)changes the view within the 3D workspace (120). As an example, if theuser were to look left while wearing the VR headset (115), the ocularscreens of the VR headset (115) would display to the user a view that isleft of the view. In some examples, a view of a 3D object within the 3Dworkspace (120) may go “off screen” when a user looks to the left suchthat, in order to view the 3D object again, the user could position hisor her head in its original position. The same would apply if the userwere to look in any other direction: right, up down, etc. Thus, to theuser, the 3D object in the 3D workspace (120) appears to remain in aspecific location within the 3D workspace (120) and it is the user thatis looking away. As such, a user may use the described input system(100) to draw any number of 3D objects within the 3D workspace (120).

Within the user view frustum (205) and tablet frustum (210), an inputplane (215) may be visible. The input plane (215) may be freelytranslated and rotated within the 3D workspace (120) as described aboveusing various user widgets. The boundaries of the input plane (215) mayextend at least up to the sides of the tablet frustum (210). In anexample, the input plane (215) does not extend beyond the near (225) orfar (230) planes of the user view frustum (205) in the case of extremerotations of the input plane (215) within the 3D workspace (120). In anexample, the input plane (215) does extend beyond the near (225) or far(230) planes of the user view frustum (205) within the 3D workspace(120). In an example, the processor prevents the input plane (215) frombeing rotated or moved into a position where it appears edge-on in theimage presented in the VR headset (115). In this example, a user viewingan edge-on view of the input plane (215) would see only a linerepresenting the edge of the input plane (215). In such a situation, itmay be difficult to draw on the input plane in such a configuration.

During operation, a user may engage the tablet (110) with the stylus(105) thus creating a point (235) on the input plane (215). The line(230) created from the pen input location and the input plane results inan intersection within the tablet frustum. FIG. 2B shows a user drawinga line (240). A digital representation of the line (240) is thenproduced on the input plane (215) within the user view frustum (205) ofthe 3D workspace (120). After a line has been drawn, the input plane(215) may be repositioned as desired to enable the user to draw a linein a different location in the 3D workspace. In another mode, moving theinput plane (215) may also move all the lines associated with that inputplane (215). Additionally, any line drawn by the user can be selectedsuch that the input plane (215) onto which the line was drawn can berecalled thereby displaying that corresponding input plane (215) again.This would enable further lines to be added on that input plane (215),or allow all the lines associated with that plane to be moved togetherby moving the input plane. Although the description herein referencesthe input from the tablet (110) and stylus (105) as a “line,” variousother types of input from these devices can result in various othertypes of markings being mapped onto the input plane (215). Examples ofthese other types of markings may include dots, 2D shapes, filled 2Dshapes, 3D shapes, filled 3D shapes, clip art, and curves, among others.Consequently, the term “line” not meant to be limiting and instead ismeant only as an example of a marking that could result from the inputreceived from the tablet (110) and stylus (105).

In an example, the input plane (215) may be moved or rotated within the3D workspace (120). As the user draws on the input plane (215), a 3Dobject is created based on the plane within the 3D workspace (120) thatthe input plane (215) occupies. As described above, in an example theuser can position the input plane (215) using a number of widgetsdisplayed next to the input plane (215). In an example, the user canposition the input plane (215) by placing the stylus (105) in adedicated manipulation mode. In this example, the stylus (105) mayinclude a button or other activation device to switch from a “drawing”state to an “input plane (215) manipulation” states. In an example, theinput plane (215) may be positioned using a six degree-of-freedom (DOF)input device. In this example, the six DOF input device may becontrolled by the user using the user's non-drawing hand or the handthat is not holding the stylus (105).

In an example, the input plane (215) may be “snapped” to predetermineddistance and angle increments. In this example, a user may inputcoordinates of the input plane (215) using the above mentioned widgets.In this example, certain inputs from the user to adjust the location ofthe input plane (215) may not be accepted until the user providesfurther instructions indicating that the input plane (215) may be“unsnapped” from the particular position. In an example, the input plane(215) may be “snapped” to a preexisting location in the 3D workspace(120). In this example, the preexisting location in the 3D workspace(120) may include an end of a previously drawn line. Further, a user mayspecifically position the input plane (215) within the 3D workspace(120) by snapping one axis of the input plane (215) between two existingline end points and then freely rotating the input plane (215) aboutthat axis created in order to achieve a desired orientation, potentiallysnapping the plane to intersect a third point.

The input plane (215), itself, may also be manipulated. In an example, awidget displayed within the 3D workspace (120) may be actuated by theuser to curve the input plane (215). In this example, the curvature ofthe input plane (215) along its axes could be manipulated using thewidget. In this example, the curvature of the input plane may bemanipulated in any way by the user allowing the user to both curve theinput plane (215) as well as add edges and/or corners into the inputplane (215). In an example, lines or other markings drawn on the inputplane (215) may be used to create a new 3D input plane (215) having auser-defined shape. In an example, a curved line drawn on the inputplane (215) could be extruded perpendicular to that input plane (215) tocreate an additional input plane (215) that the user may also implement.As a result, an additional widget may be used to toggle between theoriginal input plane (215) and the additional input plane (215) whilethe user is drawing the 3D object in the 3D workspace (120). Any numberof input planes (215) may be created. In order to prevent a view of the3D object from being obstructed due to an abundance of created inputplanes (215), a previously created input plane (215) may be opticallyremoved, faded out, or shadowed as an additional input plane (215) iscreated. Again, as a drawn line is selected, the input plane (215)associated with that line may be shown while the other input planes(215) are removed from view or faded out or shadowed.

Because the input system (100), in an example, implements a VR headset(115), changes in the position of the user's head changes the locationof the tablet frustum (210). Consequently, while the user is drawing acurve, for example, the current view within the 3D workspace (120) isaltered and the position of the input plane (215) in relation to thetablet frustum (210) may be changed. In an example, motion of the tabletfrustum (210) relative to the 3D workspace (120) may be frozen by theuser. In an example, the freezing of the tablet frustum (210) may beaccomplished as the stylus (105) engages the surface of the tablet(110). In an example, the freezing of the tablet frustum (210) may beaccomplished as the stylus (105) is within a threshold “hover” distanceabove the tablet (110). Motion or adjustment of the tablet frustum (210)may be re-enabled when the stylus (105) is lifted off of the surface ofthe tablet (110), when the threshold distance between the tablet (110)and stylus (105) is exceeded, or explicitly by a user activating awidget that re-enables movement of the tablet frustum (210).

In an example, the input system (100) implements an augmented reality(AR) headset. As described above, the user is provided with aspects ofthe real world along with a visual representation of a 3D object beingdrawn in the AR environment. During operation, the user may draw andadjust the 3D object being formed similarly as described above. In anexample, a user implementing the AR headset, however, may interact withreal surfaces in the AR environment. Specifically, a user implementingthe above described tablet (110) and stylus (105) may draw a 3D objectonto a real world surface that has been mapped by, for example, a lasermapping system associated with the input system (100). This mapping ofthe visible real world surfaces allows a user to virtually draw on thesurface of real world surfaces such as walls, ceilings, and floors.Additionally, because all real world surfaces may be mapped this way,the input plane may be these real world surfaces. Consequently, asmentioned above, the input plane (215) may include not only flatsurfaces but curved surfaces as well such as a globe, a pipe, a cone, asquare, among any other curved or multiple-surface object. In thisexample, a user may virtually add objects onto surfaces of any realworld object, add color to the surface of any real world object, andincorporate virtual 3D objects into or on real world surfaces andobjects, among others actions.

In an example, where the user implements an AR headset, any real worldsurface may be mapped as described above, and extrapolated into avirtual 3D object. This allows a user to “copy” the real world surfaceand place that copy within the AR environment. This allows the user tomanipulate the 3D object as described above and define that newly copiedsurface as the input plane (215) itself. A number of widgets provided inthe AR environment similar to that described in connection with the VRenvironment may be provided to the user to execute the “copy,” “move,”and input plane (215) designation actions as described herein. FIG. 3 isdiagram showing two resulting view reference diagrams resulting from anunfrozen (305) and frozen view (310), respectively, according to anexample of the principles described herein. An originating viewreference (300) shows the user view frustum (205) and tablet frustum(210) as well as the input plane (215) described above. In theoriginating view (300) a user is currently engaged in drawing an objecton the surface of the input plane (215) via the tablet (110) and stylus(105) as described above. The stylus (105) shown on the input plane(215) is by reference only and is not to be understood as the inputplane (215) comprising a visual representation of the stylus (105).

As described above, motion of the tablet frustum (210) relative to the3D workspace (120) and user visible frustum (205) may be frozen by theuser. Without the freezing of the tablet frustum (210), the unfrozenview (305) is the result. In the unfrozen view (305), a user currentlydrawing may mistakenly draw in a location on the input plane (215) thatwas not expected. In the example shown in FIG. 3, the unfrozen view(305) shows a situation where a currently drawn object (315) includesunintentional mark (320). The unintentional mark (320) is the result ofthe motion of the tablet frustum (210) relative to the 3D workspace(120) being changed due to a user of the VR headset (115) turning his orher head; in this example, to the right. Because the user is not able tomaintain the tablet frustum (210) in the same location, theunintentional mark (320) is drawn. However, the user may activate afrozen state such that a frozen view (310) is maintained. In an example,for small movements of the users head and the VR headset (115), thetablet frustum (210) remains fixed relative to the input plane (215)while the view frustum (205) moves with the user's head. In an example,movements of the user's head and the VR headset (115) causes the tabletfrustum (210) to pivot around the user's viewpoint independent of theuser view frustum (205) so that the current x and y coordinate locationof the marking produced by the stylus (105) does not change. This isseen in FIGS. 4A and 4B. As described above, a user may, according toone example, engage the frozen view (310) by applying the stylus (105)to the surface of the tablet (110). In an example, a user may engage thefrozen view (310) by passing an end of the stylus (105) past a thresholddistance from the surface of the tablet (110). In still another example,a user may engage the frozen view (310) by pushing a button on thestylus (105). In a further example, a user may engage the frozen view(310) by actuating a widget placed within the 3D workspace (120).

FIGS. 4A and 4B are top view diagrams of a view frustum (205) and tabletfrustum (210) as before and after a viewpoint motion respectivelyaccording to an example of the principles described herein. As brieflydescribed above, when the user has finished moving the input plane (215)to a specific location, the input plane (215) stays fixed in the 3Dworkspace (120) as the user moves their viewpoint. Additionally, themapping of the current (x, y) position of the stylus (105) on the tablet(110) to the input plane (215) is locked as described above.Consequently, if the stylus (105) is placed onto, for example, the topright corner of the tablet (110), a currently drawn object (315) willappear where the top right edge of the tablet frustum (210) intersectsthe input plane (215). If the stylus (105) is maintained still on thetablet (110) and the user shifts and/or turns his or her head with theVR headset (115) so the currently drawn object (315) is in the center ofthe user's view frustum (205), the location on the input plane (215) ofthe stylus (105) doesn't change. Additionally, the currently drawnobject (315) should stay a currently drawn object (315) withoutadditional markings on the input plane (215) being made. FIG. 4B showsthe tablet frustum (210) and view frustum (205) both pointing backtowards the same viewpoint, but now extend off in different directionsso that the intersection of the pen location within the tablet frustum(210) with the input plane (215), the point marked by the currentlydrawn object (315), stays fixed. For simplicity, the above examplesassume the stylus (105) is not moved as the user changes theirviewpoint, but this is not a requirement. On each display update cyclethe tablet frustum (210) is recalculated as described above, and thenany changes in the stylus (105) position on the tablet (110) aretranslated into a stroke input on the input plane (215) based on thisnew mapping.

In an example, a line or other indicator may be placed within the 3Dworkspace (120) indicating the boundaries of the tablet frustum (210).In one example. the indicator indicating the boundaries of the tabletfrustum (210) may be visible to the user at all times. In anotherexample, the indicator indicating the boundaries of the tablet frustum(210) may become visible when the user's stylus (105) approaches theboundary of the tablet frustum (210).

As a result of the freezing feature described above, a user may draw a3D object within the 3D workspace (120) without inadvertently making anunintended mark. During the drawing process, a user may not be able tokeep his or her head completely still. Instead, there may be inadvertentsmall shifts in the user's head position with the impact of these shiftsbeing magnified significantly depending on the distance betweenviewpoint and the input point in the 3D workspace (120). In order tosupport precise input, the mapping may be frozen as describe above forat least the duration of the stylus (105) stroke.

FIG. 5 is a flowchart showing a method (500) of applying atwo-dimensional (2D) input into a three-dimensional (3D) space accordingto one example of the principles described herein. The method (500) maybegin with receiving (505) input from a first input device at aprocessor indicating a change in position of an input plane (215) withinthe 3D space represented on an output device. In an example, the firstinput device is a stylus (105) and tablet (110). In this example, thestylus (105) may be used to adjust the input plane (215) as describedabove. In an example, the first input device is a mouse. In thisexample, a user may implement a stylus (105) and tablet (110) along withthe mouse to both draw a 3D image in the 3D workspace (120) and adjustthe input plane (215).

The method (500) may continue with receiving (510) input from a secondinput device having a 2D surface at the processor indicating a line tobe drawn in the 3D space. In an example, the second input device is astylus (105) and tablet (110). As described above, the stylus (105) andtablet (110) receive (510) input and pass the input onto a processorassociated with the input system (100).

The method (500) may continue with representing (515) the received inputfrom the second input device as a 3D image within the 3D space displayedon a user interface. The processor converts the input data presented bythe stylus (105) and tablet (110) into image data and presents the imagedata to a user via, for example, the VR headset (115) or AR headsetdescribed above. During the representation (515) of the received inputfrom the second input device, the processor maintains (520) a currentmapping of the input from the second input device to the input planewithin the VR headset when a stylus interacts with the second inputdevice and as the VR headset is moved. As described above, maintaining(520) the current mapping of the input from, for example, the tablet tothe input plane allows a user of the VR headset (115) to adjust theposition of his or her head while drawing a 3D object in the 3Dworkspace (120). This prevents unintended and errant drawing strokes bythe user.

Aspects of the present system and method are described herein withreference to flowchart illustrations and/or block diagrams of methods,apparatus (systems) and computer program products according to examplesof the principles described herein. Each block of the flowchartillustrations and block diagrams, and combinations of blocks in theflowchart illustrations and block diagrams, may be implemented bycomputer usable program code. The computer usable program code may beprovided to a processor of a general purpose computer, special purposecomputer, or other programmable data processing apparatus to produce amachine, such that the computer usable program code, when executed via,for example, the processor or other programmable data processingapparatus, implement the functions or acts specified in the flowchartand/or block diagram block or blocks. In one example, the computerusable program code may be embodied within a computer readable storagemedium; the computer readable storage medium being part of the computerprogram product. In one example, the computer readable storage medium isa non-transitory computer readable medium.

The specification and figures describe an input system implementing avirtual reality headset to provide a user with a relatively intuitiveway of creating 3D images within a 3D workspace. The input device andthe method described herein allow for a user to adjust an input planesuch that a 2D input on a tablet is translated into a 3D image withinthe 3D workspace. Additionally, a user may use the VR headset whilestill drawing on the tablet as a result of a freeze feature. The freezefeature freezes the mapping of the tablet to the input plane when astylus contacts or breaches a threshold distance from a tablet. Theresult provides for a user to input strokes on the input plane withoutchanges in the user's head position causing unintentional markings whenthe user turns his or her head.

The preceding description has been presented to illustrate and describeexamples of the principles described. This description is not intendedto be exhaustive or to limit these principles to any precise formdisclosed. Many modifications and variations are possible in light ofthe above teaching.

What is claimed is:
 1. An input system, comprising: a stylus; apositionable output device; a tablet to receive input via interactionwith the stylus; and a three-dimensional (3D) workspace represented on agraphical user interface (GUI) of the positionable output devicecommunicatively coupled to the tablet; wherein two-dimensional (2D)input on the tablet translates to a 3D input on the 3D workspace basedon the orientation of an input plane represented in the 3D workspace;and wherein interface of the stylus with the tablet freezes a view of atablet-to-input mapping displayed on the positionable output device;wherein the input plane is adjustable with reference to a consistentpoint of reference within the 3D workspace; wherein the input plane fitswithin a tablet frustum defined within a view frustum within the 3Dworkspace.
 2. The input system of claim 1, wherein boundaries of theinput plane extend between the tablet frustum and the view frustum.
 3. Acomputer program product for applying a two-dimensional (2D) input intoa three-dimensional (3D) space, the computer program product comprising:a non-transitory computer readable storage medium comprising computerusable program code embodied therewith, the computer usable program codeto, when executed by a processor: receive input from a first inputdevice at a processor indicating a change in position of an input planewithin the 3D space represented on an output device; receive input froma second input device having a 2D surface at the processor indicating aline to be drawn in the 3D space; represent the received input from thesecond input device as a 3D image within the 3D space displayed on theoutput device; and maintain a current mapping of the input from thesecond input device to the input plane within the 3D space when a stylusinteracts with the second input device and as the output device ismoved; wherein the input plane fits within a tablet frustum of thesecond input device that is defined within a view frustum within the 3Dworkspace.
 4. The computer program product of claim 3, furthercomprising computer usable program code to, when executed by aprocessor, receive instructions to map.
 5. The computer program productof claim 3, further comprising computer usable program code to, whenexecuted by a processor, prevent the input plane from aligning edge-onto a user viewpoint.